package com.jlnx.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.jlnx.pojo.ChainEnterprise;
import com.jlnx.pojo.Enterprise;
import com.jlnx.util.DBUtils;

public class EnterpriseDaoImpl {

	public int insertEnterprise(Enterprise enterprise) {
		//定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="insert into enterprise values(?,?,?,?,?,?)";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			pstm.setString(1, enterprise.getEntNo());
			pstm.setString(2, enterprise.getName());
			pstm.setString(3, enterprise.getEntCodeCredit());
			pstm.setString(4, enterprise.getPassword());
			pstm.setString(5, enterprise.getPhoneNo());
			pstm.setInt(6, enterprise.getRole());
			//执行SQL语句，并返回结果
			int i = pstm.executeUpdate();
			return i;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	
		return -1;
	}
	
	/**
	 *单查询:由登录账号获取链条企业信息
	 */
	public int getRoleByEntNo(String entNo) {
		
        //定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		ResultSet rs = null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="select role from enterprise where entNo = ?";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			pstm.setString(1, entNo);
			//执行SQL语句，并返回结果
			rs=pstm.executeQuery();
			int role = 0;
			while(rs.next()) {
				role = rs.getInt(1);
			}
			return role;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				rs.close();
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return -1;
		
	}
	
//	/**
//	 *判断账号是否存在
//	 */
//	public List checkNameIsExist(String str) {
//		
//		        //定义相关对象
//				Connection conn = null;
//				PreparedStatement pstm=null;
//				ResultSet rs = null;
//				//链接数据库
//				conn = DBUtils.getConnection();
//				//编写SQL语句
//				String sql;
//				if(str.equals("男")) {
//					sql="select * from emp where empno=? or ename=? or esex=1 or eidnum=? or deptno=? or jobno=? or esource=? ";
//				}else if(str.equals("女")) {
//				    sql="select * from emp where empno=? or ename=? or esex=2 or eidnum=? or deptno=? or jobno=? or esource=? ";
//				}else if(str.equals("职员")){
//					sql="select * from emp where empno=? or ename=? or eidnum=? or deptno=? or jobno=? or etype=1 or esource=? ";
//				}else if(str.equals("管理员")) {
//					sql="select * from emp where empno=? or ename=? or eidnum=? or deptno=? or jobno=? or etype=2 or esource=? ";
//				}else {
//					sql="select * from emp where empno=? or ename=? or eidnum=? or deptno=? or jobno=? or esource=? ";
//				}
//				//获得执行SQL语句对象
//				try {
//					pstm=conn.prepareStatement(sql);
//					//给占位符赋值
//					pstm.setString(1, str);
//					pstm.setString(2, str);
//					pstm.setString(3, str);
//					pstm.setString(4, str);
//					pstm.setString(5, str);
//					pstm.setString(6, str);
//					//执行SQL语句，并返回结果
//					rs=pstm.executeQuery();
//					List<Emp> list = new ArrayList<Emp>();
//					while(rs.next()) {
//						Emp emp = new Emp(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4), rs.getDate(5), rs.getString(6),rs.getInt(7),rs.getInt(8), rs.getDate(9),rs.getInt(10),rs.getInt(11));
//						list.add(emp);
//					}
//					return list;
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				} finally {
//					//关闭连接，释放结果（正序创建，逆序销毁）
//					try {
//						rs.close();
//						pstm.close();
//						conn.close();
//					} catch (SQLException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//				}
//		return null;
//		
//	}
	
	/**
	 *查询企业名称是否存在（注册用）
	 */
	public int checkNameIsExist(String entNo) {
		
		//定义相关对象
				Connection conn = null;
				PreparedStatement pstm=null;
				ResultSet rs = null;
				//链接数据库
				conn = DBUtils.getConnection();
				//编写SQL语句
				String sql="select * from enterprise where entno=?";
				//获得执行SQL语句对象
				try {
					pstm=conn.prepareStatement(sql);
					//给占位符赋值
					pstm.setString(1, entNo);
					//执行SQL语句，并返回结果
					rs=pstm.executeQuery();
					if(rs.next()) {
						Enterprise emp = new Enterprise(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getInt(6));
						return 0;
					}
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					//关闭连接，释放结果（正序创建，逆序销毁）
					try {
						rs.close();
						pstm.close();
						conn.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
		        return -1;
		
	}
//	
//	/**
//	 * 删除
//	 */
//	
// public int deleteEmpByENum(int eNum) {
//		//定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="delete from emp where empno=?";
//		//获得执行SQL语句对象
//		try {
//			pstm=conn.prepareStatement(sql);
//			//给占位符赋值
//			pstm.setInt(1, eNum);
//			//执行SQL语句，并返回结果
//			int i = pstm.executeUpdate();
//			return i;
//			
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			//关闭连接，释放结果（正序创建，逆序销毁）
//			try {
//				pstm.close();
//				conn.close();
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	
//		return 0;
//		
//	}
// 
//     /**
//	 * 更改密码
//	 */
// public int changeEmpPassByENum(int eNum,String ePass) {
//		//定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="update emp set epass=? where empno=?";
//		//获得执行SQL语句对象
//		try {
//			pstm=conn.prepareStatement(sql);
//			//给占位符赋值
//			pstm.setString(1, ePass);
//			pstm.setInt(2, eNum);
//			//执行SQL语句，并返回结果
//			int i = pstm.executeUpdate();
//			return i;
//			
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			//关闭连接，释放结果（正序创建，逆序销毁）
//			try {
//				pstm.close();
//				conn.close();
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	
//		return 0;
//		
//	}
// 
 /**
  * 全查询
  */
// public List<Enterprise> selectEmpList(){
//	 
//	    //定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		ResultSet rs = null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="select * from enterprise";
//		//获得执行SQL语句对象
//		try {
//			pstm=conn.prepareStatement(sql);
//			//执行SQL语句，并返回结果
//			rs=pstm.executeQuery();
//			List<Enterprise> list = new ArrayList<Enterprise>();
//			while(rs.next()) {
//				Enterprise emp = new Enterprise(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5), rs.getInt(6));
//				list.add(emp);
//			}
//			return list;
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	 
//	return null;
//	
//	 
// }
 
 /**
	 * 登陆验证
	 */
    public Enterprise checkEnterpriseLogin(String entNo,String password) {
        //定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		ResultSet rs = null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="select * from enterprise where entno=? and password =?";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			pstm.setString(1, entNo);
			pstm.setString(2, password);
			//执行SQL语句，并返回结果
			rs=pstm.executeQuery();
			if(rs.next()) {
				Enterprise emp = new Enterprise(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getInt(6));
				return emp;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				rs.close();
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
        return null;
   	
    }
//    
//    /**
//     * 修改员工信息
//     */
//    public int changeEmpByENum(int eNum,String eName,String ePass,int eSex,Date eBirth,String eIdNum,int deptNum,int jobNum,int eType,int eSource ) {
//		//定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="update emp set ename=?,epass=?,esex=?,ebirth=?,eidnum=?,deptno=?,jobno=?,etype=?,esource=? where empno=?";
//		//获得执行SQL语句对象 
//		try {
//			pstm=conn.prepareStatement(sql);
//			//给占位符赋值
//			pstm.setString(1, eName);
//			pstm.setString(2, ePass);
//			pstm.setInt(3, eSex);
//			pstm.setDate(4, eBirth);
//			pstm.setString(5, eIdNum);
//			pstm.setInt(6, deptNum);
//			pstm.setInt(7, jobNum);
//			pstm.setInt(8, eType);
//			pstm.setInt(9, eSource);
//			pstm.setInt(10, eNum);
//			//执行SQL语句，并返回结果
//			int i = pstm.executeUpdate();
//			return i;
//			
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			//关闭连接，释放结果（正序创建，逆序销毁）
//			try {
//				pstm.close();
//				conn.close();
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	
//		return 0;
//		
//	}
//
//    /** 
//     * @param empName
//     * @param empSex
//     * @param empBirth
//     * @param empIdNum
//     * @return
//     */
//	public int changeEmpMsgByENum(int eNum, String eName, int eSex, Date eBirth, String eIdNum) {
//		//定义相关对象
//				Connection conn = null;
//				PreparedStatement pstm=null;
//				//链接数据库
//				conn = DBUtils.getConnection();
//				//编写SQL语句
//				String sql="update emp set ename=?,esex=?,ebirth=?,eidnum=? where empno=?";
//				//获得执行SQL语句对象 
//				try {
//					pstm=conn.prepareStatement(sql);
//					//给占位符赋值
//					pstm.setString(1, eName);
//					pstm.setInt(2, eSex);
//					pstm.setDate(3, eBirth);
//					pstm.setString(4, eIdNum);
//					pstm.setInt(5, eNum);
//					//执行SQL语句，并返回结果
//					int i = pstm.executeUpdate();
//					return i;
//					
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				} finally {
//					//关闭连接，释放结果（正序创建，逆序销毁）
//					try {
//						pstm.close();
//						conn.close();
//					} catch (SQLException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//				}
//			
//				return 0;
//	}
    
}
